require_relative 'cool_factory'
require_relative 'uncool_factory'
require_relative 'deadly_factory'

class Client

  def initialize (factory)
    @prod_A = factory.create_product_A
    @prod_A.do_your_stuff
    @prod_B = factory.create_product_B
    @prod_B.do_it
    @prod_C = factory.create_product_C
    @prod_C.perform
    @prod_D = factory.create_product_D
    @prod_D.handle
  end

end

factory =  DeadlyFactory.instance
Client.new factory